package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * 完成简易记事本工具
 * 程序启动后，将用户在控制台上输入的每一行字符串都写入到note.txt文件中。
 * 注:写入文件中的内容不用考虑换行。
 * 当用户在控制台上单独输入:"exit"时程序退出。
 */
public class Test2 {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请开始输入内容，单独输入exit退出");
        /*
            文件流默认创建形式为覆盖写模式，对应的构造器:
            FileOutputStream(String filename)
            FileOutputStream(File file)
            所谓覆盖写模式:如果创建流时指定的文件已经存在了，那么文件流会将该文件数据
            全部清除。然后将通过这个流写出的数据保存在文件中。

            文件流可以以追加模式创建，对应的构造器
            FileOutputStream(String filename,boolean append)
            FileOutputStream(File file,boolean append)
            如果第二个参数传入true，则文件流创建时为追加模式:
            如果此时指定的文件已经存在则文件流在创建时会将文件数据全部保留，通过
            当前流写出的数据会陆续的追加到文件中。

         */
        FileOutputStream fos = new FileOutputStream("note.txt",true);
        while(true){
            String line = scanner.nextLine();//获取用户输入的一行字符串
            if("exit".equals(line)){//判断输入的是否为"exit"
                break;
            }
            byte[] data = line.getBytes(StandardCharsets.UTF_8);
            fos.write(data);
        }
        System.out.println("再见!");
        fos.close();

    }
}
